package com.info.zhiduoduo.repository.entity.weixin;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;

import java.io.Serializable;
import java.util.Date;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 微信支付交易记录
 * </p>
 *
 * @author bob
 * @since 2019-12-08
 */
@Data
@Accessors(chain = true)
@TableName("zdd_wxpay_record")
public class WxpayRecord extends Model<WxpayRecord> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "payid", type = IdType.AUTO)
    private Integer payid;
    /**
     * 微信支付编号，用于在微信中识别唯一请求
     */
    @TableField("pay_no")
    private String payNo;
    /**
     * 业务订单编号，同一业务订单编号可能有多个支付记录
     */
    @TableField("order_no")
    private String orderNo;
    /**
     * 业务订单类型： 1： 支付 2: 创客 开票
     */
    @TableField("order_type")
    private Integer orderType;
    /**
     * 预支付交易会话标识
     */
    @TableField("prepay_id")
    private String prepayId;
    /**
     * 微信支付订单号
     */
    @TableField("transaction_id")
    private String transactionId;
    /**
     * 支付价格，单位分
     */
    private Integer price;
    /**
     * 支付用户openid
     */
    private String openid;
    /**
     * 商品描述
     */
    private String body;
    /**
     * 支付状态：1：已创建 2：支付中 3：超时未支付  4：已完成  5：已取消
     */
    private Integer status;
    /**
     * SUCCESS/FAIL
     */
    @TableField("result_code")
    private String resultCode;
    /**
     * 当result_code为FAIL时返回错误代码，详细参见下文错误列表
     */
    @TableField("err_code")
    private String errCode;
    /**
     * 当result_code为FAIL时返回错误描述，详细参见下文错误列表
     */
    @TableField("err_code_des")
    private String errCodeDes;
    /**
     * 支付完成时间
     */
    private Date paytime;
    /**
     * 创建时间
     */
    private Date createtime;
    /**
     * 更新时间
     */
    private Date updatetime;


    @Override
    protected Serializable pkVal() {
        return this.payid;
    }

}
